Skip to content

feat: TEM-27 remove FileBrowser, patch HIGH/CRITICAL vulns, and harden build/release CI - #154

Draft
Chmokachka wants to merge 10 commits into
mainfrom
feat/TEM-27-upgrade-filebrowser
Draft

feat: TEM-27 remove FileBrowser, patch HIGH/CRITICAL vulns, and harden build/release CI#154
Chmokachka wants to merge 10 commits into
mainfrom
feat/TEM-27-upgrade-filebrowser

Conversation

@Chmokachka

@Chmokachka Chmokachka commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

Summary

TEM-27. Removes the unused FileBrowser binary from runpod/base, patches the
outstanding CRITICAL/HIGH vulnerabilities across our image families, turns Grype
into a hard gate on the families we've cleaned up, and hardens the build/release
pipeline so flaky BuildKit cache failures can no longer silently skip a release
or mis-bump the version.

FileBrowser is being archived on Sept 1st
by upstream and ships with known, will-not-fix security advisories. We installed
the binary in base but never started it (only comfyui-base runs it), so it
was pure attack surface with no benefit — dropped it.

Changes

FileBrowser

  • base: remove the FileBrowser install step entirely (binary was never
    launched by start.sh, so no runtime behavior changes).

Vulnerability fixes

  • pytorch: re-install a patched Pillow from PyPI over the CVE-affected copy
    torchvision drags in from the PyTorch wheel index. Version is centralized as
    PILLOW_VERSION in docker-bake.hcl and only applied when Pillow is actually
    present (torch-only builds are untouched).
  • pytorch-cluster: bump node_exporter 1.11.1 → 1.12.1 and Grafana
    13.1.0 → 13.1.1 (Go stdlib / dependency CVEs in the embedded binaries).
  • autoresearch: bump runpodctl v2.3.0 → v2.7.2 (Go stdlib / x-crypto CVEs).
  • nvidia-pytorch: jupyterlab 4.5.9 → 4.5.10, mistune 3.2.1 → 3.3.0,
    add msgpack==1.2.1, add soupsieve==2.8.4, pillow 12.2.0 → 12.3.0.
  • rocm: jupyterlab 4.5.9 → 4.5.10, add msgpack==1.2.1,
    pillow 12.2.0 → 12.3.0.
  • base: jupyterlab 4.5.9 → 4.5.10.

CI - vulnerability gating

  • grype: add a fail-on-findings input (default false, report-only).
    Enabled (true) for the cleaned-up families: base, pytorch, nvidia.
    Other families stay report-only until their remaining findings are resolved.

CI - build robustness

  • docker-setup: upgrade useblacksmith/setup-docker-builder v1 → v2.0.1 and
    add a required cache-key input. Each image family now uses a distinct cache
    lineage (<repo>/base, /pytorch, /cluster, /nvidia, /rocm,
    /autoresearch) so families no longer thrash each other's BuildKit sticky-disk
    cache — this also fixes the "no space left on device" failures on ROCm builds.
  • bake-retry (new composite action): every docker buildx bake step now runs
    through .github/actions/bake-retry. On a transient BuildKit failure (typically
    sticky-disk cache corruption: failed to compute cache key … unexpected commit digest … failed precondition) it prunes the builder cache and retries once with
    --no-cache, so a poisoned cache entry self-heals within the run instead of
    turning the build red. Centralised so each bake step stays a one-line call.

CI - release correctness

  • compute-version: on push/release, detect the Conventional-Commits bump from
    the merge commit's subject only, not its body or the whole
    last-tag..HEAD range. A ci:/chore: squash merge whose body lists
    feat:/fix: branch commits (or that follows earlier un-released commits in
    the range) no longer triggers a phantom version bump.
  • manual-release (new break-glass workflow): workflow_dispatch that creates
    the git tag + GitHub Release for an already-built-and-pushed version, without
    rebuilding. Recovers the case where a flaky build left release stuck in
    skipped (GitHub's "Re-run failed jobs" never resurrects a skipped downstream
    job). Guards: main-only, tag-format validation, refuses if the tag already
    exists, and shares the push-release concurrency lane.

Notes / follow-ups

  • pytorch-cluster (dcgm-exporter), rocm (base OpenSSL/Python), and
    autoresearch (pillow/urllib3 via its own uv.lock) still have findings
    that depend on upstream releases — those families remain report-only for now.

@Chmokachka Chmokachka changed the title feat: TEM-27 upgrade filebrowser feat: TEM-27 upgrade filebrowser, jupyterlab Jul 27, 2026
@Chmokachka Chmokachka changed the title feat: TEM-27 upgrade filebrowser, jupyterlab feat: TEM-27 get rid of filebrowser and upgrade jupyterlab Jul 29, 2026
@Chmokachka Chmokachka changed the title feat: TEM-27 get rid of filebrowser and upgrade jupyterlab feat: TEM-27 remove filebrowser + patch HIGH/CRITICAL vulns + harden CI Jul 29, 2026
@Chmokachka Chmokachka changed the title feat: TEM-27 remove filebrowser + patch HIGH/CRITICAL vulns + harden CI feat: TEM-27 remove FileBrowser, patch HIGH/CRITICAL vulns, and harden build/release CI Jul 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants